---
description: Эта страница расскажет о принципе в расположении файлов в проекте
---

# Структура файлов проекта

{% hint style="warning" %}
Структура проекта не обговорена с командой и может измениться или дополниться при дальнейшей разработке.
{% endhint %}

<details>

<summary><a data-footnote-ref href="#user-content-fn-1">Хендлеры-обработчики бота Telegram</a></summary>

#### **Расположение в проекте**

`/handlers/`

Внутри папки handlers существует внутреннее разделение на директории в зависимости от смысловой нагрузки конкретной группы хендлеров. На момент написания статьи группы хендлеров делятся на категории `admin` и `user`.

#### Внутреннее разделение групп хендлеров

* **admin/**
  * `admin.py` - весь функционал админ-панели.
* **user/**
  * generate/ - здесь расположены файлы с хендлерами-анкетами, а также функции генерации документов
  * menu/ - здесь будет располагаться часть хендлеров из `client.py`

</details>

<details>

<summary>Клавиатуры бота</summary>

#### **Расположение в проекте**

`/keyboards/`

</details>

<details>

<summary><a data-footnote-ref href="#user-content-fn-2">Файлы с шаблонами для генерации и выходные файлы</a></summary>

#### **Расположение в проекте**

`/files/`

#### Внутреннее разделение по папкам

Внутри /files/ будут находиться папки, по одной на каждый документ. Внутри каждой папки находятся:

* **source/** - папка с графическими исходниками для генерации(прим: шаблон, водяные знаки, дополнительные полосы, шум)
* **photo\_usr/** - папка для хранения результатов генерации, как предварительных (обработанные фото от пользователей для документов), так и финальные версии документов в двух экземплярах - оригинал и версия с вотермаркой для демонстрации пользователю перед покупкой.&#x20;

</details>

<details>

<summary><a data-footnote-ref href="#user-content-fn-3">Шрифты</a></summary>

#### **Расположение в проекте**

`/fonts/`

_<mark style="background-color:blue;">Встречал ещё какие-то шрифты в папках с файлами генерации других стран, трогать их не стал. Эти шрифты нас не интересуют, так что пусть лежат где есть. А то неизвестно сколько пути переписывать придётся если перенести их.</mark>_

</details>

<details>

<summary>Дополнительны объекты с данными для генерации</summary>

#### **Расположение в проекте**

`/data/`

#### Назначение

Используется для хранения данных, которые могут понадобится при генерации документов. Например словари с данными или модели для распознавания объектов. На момент написания документации в проекте уже присутствует модель для распознавания лиц на фото и JSON файл, содержащий словарь с некоторыми Итальянскими городами и их кодами для генерации фискального кода.

</details>

[^1]: Обеспечивают взаимодействие пользователей с ботом и его функционалом

[^2]: Тут хранятся очищенные от текста и графики шаблоны документов, которые мы заполняем, а также папки с готовыми документами для пользователей.

[^3]: Используются при наложении надписей на шаблоны документов при генерации
